package com.pxst.config;

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.pxst.enums.AmqEnum;

/**
 * 消息队列配置
 * 
 * @author yangxy
 * @version 创建时间：2023年9月4日 上午10:40:21
 */
@Configuration
public class CommonAmqCofig {
	/**
	 * 初始化操作日志队列
	 * 
	 * @author yangxy
	 * @version 创建时间：2023年9月19日 上午10:41:34
	 * @return
	 */
	@Bean
	public Queue operateLogQueue() {
		return new Queue(AmqEnum.OPERATE_LOG_AMQ.queue, true);
	}

	/**
	 * 初始化操作日志交换机
	 * 
	 * @author yangxy
	 * @version 创建时间：2023年9月19日 上午10:41:47
	 * @return
	 */
	@Bean
	DirectExchange operateLogExchange() {
		return new DirectExchange(AmqEnum.OPERATE_LOG_AMQ.exchange, true, false);
	}

	/**
	 * 绑定操作日志队列和操作日志交换机
	 * 
	 * @author yangxy
	 * @version 创建时间：2023年9月19日 上午10:42:12
	 * @return
	 */
	@Bean
	Binding bindingOperateLog() {
		return BindingBuilder.bind(operateLogQueue()).to(operateLogExchange()).with(AmqEnum.OPERATE_LOG_AMQ.routingKey);
	}
	
}
